import HTTP from '@/libs/http'

class InitApi extends HTTP {
  /**
   * @description: 事件总览
   * @author lsr
   * @param {String} regionCode 行政去区码
   * @param {String} timeUnitType 统计类型
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   * @date 2021.03.09
   */
  overview({ regionCode, timeUnitType, startTime, endTime }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/overview',
      params: {
        regionCode,
        timeUnitType,
        startTime,
        endTime
      }
    })
  }

  /**
   * @description: 部门分类列表
   * @date 2021.03.09
   */
  departmentList() {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/departmentList'
    })
  }

  /**
   * @category: 一级事件分类列表
   */
  departmentListyj() {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/category'
    })
  }

  /**
   * @description: 处置率统计分析
   * @author lsr
   * @param {String} regionCode 行政去区码
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   * @param {String} type 类型
   * @param {String} timeUnitType 统计类型
   * @date 2021.03.09
   */
  rate({ regionCode, startTime, endTime, type, timeUnitType }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/disposal/rate',
      params: {
        regionCode,
        startTime,
        endTime,
        type,
        timeUnitType
      }
    })
  }

  /**
   * @description: 区域事件排名
   * @author lsr
   * @param {String} regionCode 行政去区码
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   * @param {String} timeUnitType 统计类型
   * @date 2021.03.09
   */
  eventManageCount({ regionCode, startTime, endTime, timeUnitType }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/statistic/eventManageCount',
      params: {
        regionCode,
        startTime,
        endTime,
        timeUnitType
      }
    })
  }

  /**
   * @description: 事件概况总览--top5统计分析
   * @author lsr
   * @param {String} regionCode 行政去区码
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   * @param {String} timeUnitType 统计类型
   * @param {String} type 类型
   * @date 2021.03.09
   */
  top5({ regionCode, type, startTime, endTime, timeUnitType }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/top5',
      params: {
        regionCode,
        type,
        startTime,
        endTime,
        timeUnitType
      }
    })
  }

  /**
   * @description: 事件概况总览--办件概况统计
   * @author lsr
   * @param {String} regionCode 行政去区码
   * @param {String} type 类型
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   * @param {String} timeUnitType 统计类型
   * @date 2021.03.09
   */
  handling({ regionCode, type, startTime, endTime, timeUnitType }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/handling',
      params: {
        regionCode,
        type,
        startTime,
        endTime,
        timeUnitType
      }
    })
  }

  /**
   * @description: 事件概况总览--办件时长统计
   * @author lsr
   * @param {String} regionCode 行政去区码
   * @param {String} type 类型
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   * @param {String} timeUnitType 统计类型
   * @date 2021.03.09
   */
  gridhandling({ regionCode, type, startTime, endTime, timeUnitType }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/grid/handling',
      params: {
        regionCode,
        type,
        startTime,
        endTime,
        timeUnitType
      }
    })
  }

  /**
   * @description: 处置满意率统计
   * @author lsr
   * @param {String} regionCode 行政去区码
   * @param {String} type 类型
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   * @param {String} timeUnitType 统计类型
   * @date 2021.03.09
   */
  satisfactionRate({ regionCode, type, startTime, endTime, timeUnitType }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/satisfactionRate',
      params: {
        regionCode,
        type,
        startTime,
        endTime,
        timeUnitType
      }
    })
  }

  /**
   * @description: 督办信息
   * @author lsr
   * @date 2021.03.17
   * @param {String} queryType 记录类型 1：已督办事件  2：未督办事件
   * @param {String} isReply 数据类型 1：已回复 2：未回复 3：督办超时
   * @param {String} superviseTimeOut 督办是否超时 1：是 2：否
   * @param {Int} recordSize 开始下标（第一条数据的下标为0）
   * @param {Int} pageSize 每页显示条数
   */
  list({
    queryType,
    recordSize,
    pageSize,
    regionCode,
    departmentCode,
    superviseTimeOut,
    isSupervising,
    eventStatus,
    communityRegion,
    eventType,
    reportBeginTime,
    reportEndTime
  }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/last',
      params: {
        queryType,
        recordSize,
        pageSize,
        regionCode,
        departmentCode,
        superviseTimeOut,
        isSupervising,
        eventStatus,
        communityRegion,
        eventType,
        reportBeginTime,
        reportEndTime
      }
    })
  }

  /**
   * @description: 督办信息
   * @author lsr
   * @date 2021.03.17
   * @param {String} queryType 记录类型 1：已督办事件  2：未督办事件
   * @param {String} isReply 数据类型 1：已回复 2：未回复 3：督办超时
   * @param {String} superviseTimeOut 督办是否超时 1：是 2：否
   * @param {Int} recordSize 开始下标（第一条数据的下标为0）
   * @param {Int} pageSize 每页显示条数
   */
  heat({
    queryType,
    recordSize,
    pageSize,
    regionCode,
    departmentCode,
    superviseTimeOut,
    isSupervising,
    eventStatus,
    communityRegion,
    eventType,
    reportBeginTime,
    reportEndTime
  }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-government-statistic/event/eventCount',
      params: {
        queryType,
        recordSize,
        pageSize,
        regionCode,
        departmentCode,
        superviseTimeOut,
        isSupervising,
        eventStatus,
        communityRegion,
        eventType,
        reportBeginTime,
        reportEndTime
      }
    })
  }
}
class EventClass {
  constructor() {
    this.Init = new InitApi()
  }
}

const Event = new EventClass()

export default Event
